<html>
<head><meta charset="utf-8"><title>Moving Call Info to HIR · t-compiler/rust-analyzer · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/index.html">t-compiler/rust-analyzer</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html">Moving Call Info to HIR</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="204083835"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204083835" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204083835">(Jul 16 2020 at 13:34)</a>:</h4>
<p>Hey, <span class="user-mention" data-user-id="129457">@Florian Diebold</span> , I am trying to move call info over to hir types (to support closures, and to avoid string-based semantic analysis). </p>
<p>I think I am hitting a couple of surprising limitations of our inference infra</p>



<a name="204083959"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204083959" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204083959">(Jul 16 2020 at 13:35)</a>:</h4>
<p>Here's the first one:</p>
<p><a href="/user_uploads/4715/U7FqAzMZXZNHBqKg7BelAHCV/image.png">image.png</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/U7FqAzMZXZNHBqKg7BelAHCV/image.png" title="image.png"><img src="/user_uploads/4715/U7FqAzMZXZNHBqKg7BelAHCV/image.png"></a></div>



<a name="204084060"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204084060" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204084060">(Jul 16 2020 at 13:36)</a>:</h4>
<p>Here, we are showing hints for a function with two generic params: <code>foo(T, U)</code></p>



<a name="204084094"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204084094" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204084094">(Jul 16 2020 at 13:36)</a>:</h4>
<p>We know value only for the first param, so the hint shows <code>(i32, {unknown})</code></p>



<a name="204084225"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204084225" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204084225">(Jul 16 2020 at 13:37)</a>:</h4>
<p>Now, it would be cool if that <code>{unknown}</code> said <code>U</code> instead. It seems like we might want to extend the defition of <code>Ty::Unknown</code> to not erase this information somehow</p>



<a name="204084395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204084395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204084395">(Jul 16 2020 at 13:38)</a>:</h4>
<p>hm. It's not <code>U</code> though -- like, <code>U</code> is not a type that even exists at that location. This feels like something that should be tracked on some side channel maybe (i.e., why did a type variable get created)</p>



<a name="204084446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204084446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Laurențiu <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204084446">(Jul 16 2020 at 13:39)</a>:</h4>
<p>What if <code>U</code> is an associated type of <code>T</code>? Should it say <code>i32::Foo</code>?</p>
<div class="codehilite"><pre><span></span><code><span class="k">trait</span><span class="w"> </span><span class="n">HasU</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="k">type</span> <span class="nc">U</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>

<span class="k">fn</span> <span class="nf">foo</span><span class="o">&lt;</span><span class="n">T</span>: <span class="nc">HasU</span><span class="o">&gt;</span><span class="p">(</span><span class="n">x</span>: <span class="nc">T</span><span class="p">,</span><span class="w"> </span><span class="n">y</span>: <span class="nc">T</span>::<span class="n">U</span><span class="p">)</span><span class="w"> </span><span class="p">{}</span><span class="w"></span>
</code></pre></div>



<a name="204084461"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204084461" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204084461">(Jul 16 2020 at 13:39)</a>:</h4>
<p>The second limitation is simpler. For method calls like <code>x.foo(a, b)</code>, we don't seem to record substitutions for <code>foo</code> anywhere. Our table stores only <code>FunctionId</code>. </p>
<p>Note that this problem does not exist for function calls (<code>X::foo(x, a, b)</code>), as we can look up the type of <code>X::foo</code> expr, and that carries <code>subs</code>.</p>



<a name="204084528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204084528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204084528">(Jul 16 2020 at 13:39)</a>:</h4>
<p>yeah we probably want to just record them</p>



<a name="204084676"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204084676" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204084676">(Jul 16 2020 at 13:40)</a>:</h4>
<blockquote>
<p>like, U is not a type that even exists at that location.</p>
</blockquote>
<p>Exactly! The <code>Ty::Unknown</code> is the <em>right</em> type. <em>But</em> it seems like we know that we've got that particular unknown from a type parameter, so we <em>might</em> want to change <code>Unknown</code> to <code>Unknown { type_param: Option&lt;TypeParamId&gt; }</code> or something like that.</p>



<a name="204085113"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204085113" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204085113">(Jul 16 2020 at 13:44)</a>:</h4>
<p>so, I'd like to keep  additional information out of <code>Ty</code> because in some not-so-far-off future, <code>Ty</code> won't exist anymore and we'll be using <code>chalk_ir::Ty</code>. I think it'd make more sense to 1. have some way of knowing the exact type variable that Unknown came from, and then 2. be able to look up why that variable was created (which I guess would be something like <code>TypeVariableSource::TypeParam(TypeParamId)</code>). I think rustc keeps track of that quite similarly for diagnostics, haven't looked into it yet though</p>



<a name="204085195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204085195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204085195">(Jul 16 2020 at 13:45)</a>:</h4>
<p>I'm not sure what part would see that and decide to print <code>U</code> instead of <code>{unknown}</code> though <span aria-label="thinking" class="emoji emoji-1f914" role="img" title="thinking">:thinking:</span></p>



<a name="204085299"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204085299" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204085299">(Jul 16 2020 at 13:46)</a>:</h4>
<p>it feels wrong to do that in the HIR code, since it's not the correct type, it's more of an IDE decision, but then the IDE code needs to have their own printing <span aria-label="confused" class="emoji emoji-1f615" role="img" title="confused">:confused:</span></p>



<a name="204085442"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204085442" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204085442">(Jul 16 2020 at 13:47)</a>:</h4>
<p>Yeah, that's more general problem: I think something about paths/auto-import already bleeds into <code>HirDisplay</code>?</p>



<a name="204085554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204085554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204085554">(Jul 16 2020 at 13:48)</a>:</h4>
<p>Drawing the line between IDE and compiler feels like separating the toothpaste into three colored strands :)</p>



<a name="204085592"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204085592" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204085592">(Jul 16 2020 at 13:48)</a>:</h4>
<p>yeah, it optionally tries to print correct importable paths</p>



<a name="204086009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204086009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204086009">(Jul 16 2020 at 13:52)</a>:</h4>
<p>I have a plan to fix that, which is basically to use the new type IR I'm slowly working on also in the other direction</p>



<a name="204086169"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204086169" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204086169">(Jul 16 2020 at 13:53)</a>:</h4>
<p>The separate IR from chalk's?</p>



<a name="204086179"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204086179" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204086179">(Jul 16 2020 at 13:53)</a>:</h4>
<p>So that we have two type reprs?</p>



<a name="204086217"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204086217" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204086217">(Jul 16 2020 at 13:53)</a>:</h4>
<p>Adding a new IR always feels like a right solution :D</p>



<a name="204086242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204086242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204086242">(Jul 16 2020 at 13:53)</a>:</h4>
<p>yeah, basically an IR that represents user-facing types, but resolved</p>



<a name="204086295"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204086295" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204086295">(Jul 16 2020 at 13:54)</a>:</h4>
<p>that doesn't help with the type variable problem though</p>



<a name="204086347"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204086347" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204086347">(Jul 16 2020 at 13:54)</a>:</h4>
<p>we already have two type reprs, <code>TypeRef</code> and <code>Ty</code>, this would be in between them ;)</p>



<a name="204088227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204088227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204088227">(Jul 16 2020 at 14:09)</a>:</h4>
<p><span class="user-mention" data-user-id="133169">@matklad</span> maybe it would be enough of an interim solution to just print <code>_</code> instead of <code>{unknown}</code>?</p>



<a name="204088395"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204088395" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204088395">(Jul 16 2020 at 14:10)</a>:</h4>
<p>Nah, for interim solution <code>{unknown}</code> is fine :D</p>



<a name="204088455"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204088455" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204088455">(Jul 16 2020 at 14:11)</a>:</h4>
<p>Though, Ive been debating if we should render <code>{unknown}</code> as <code>?</code></p>



<a name="204088510"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204088510" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204088510">(Jul 16 2020 at 14:11)</a>:</h4>
<p>(that is, everywhere -- in hover, in inlay hints, etc)</p>



<a name="204091258"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204091258" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204091258">(Jul 16 2020 at 14:31)</a>:</h4>
<p><code>_</code> makes sense to me because it <em>is</em> actually an inference variable. Maybe it'd be good to distinguish between error types and unresolved inference variables later</p>



<a name="204091554"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204091554" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204091554">(Jul 16 2020 at 14:32)</a>:</h4>
<p>Yeah, <code>_</code> also makes sense... I am thinking though if it would be self-explanatory. </p>
<p>If you see <code>let x: Vec&lt;?&gt; = ...</code> it's self-evident that IDE has trouble inferring <code>?</code>. If you see <code>let x: Vec&lt;_&gt;</code>, you might think that IDE shortents type here, or something.</p>



<a name="204091585"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204091585" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> matklad <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204091585">(Jul 16 2020 at 14:33)</a>:</h4>
<p>Aren't we actually using <code>_</code> for type shortening already?</p>



<a name="204091678"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/185405-t-compiler/rust-analyzer/topic/Moving%20Call%20Info%20to%20HIR/near/204091678" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Florian Diebold <a href="https://rust-lang.github.io/zulip_archive/stream/185405-t-compiler/rust-analyzer/topic/Moving.20Call.20Info.20to.20HIR.html#204091678">(Jul 16 2020 at 14:33)</a>:</h4>
<p>I think we're using ... for type shortening</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>